package com.rainng.coursesystem.module.system.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.rainng.coursesystem.base.api.dto.BaseIdReqDTO;
import com.rainng.coursesystem.base.api.dto.PagingReqDTO;
import com.rainng.coursesystem.module.system.dto.request.SysUserLoginDto;
import com.rainng.coursesystem.module.system.dto.request.SysUserQueryReqDTO;
import com.rainng.coursesystem.module.system.dto.request.SysUserSaveReqDTO;
import com.rainng.coursesystem.module.system.dto.response.SysUserBaseResDTO;
import com.rainng.coursesystem.module.system.dto.response.SysUserResBaseDTO;
import com.rainng.coursesystem.module.system.dto.response.SysUserResDTO;
import com.rainng.coursesystem.module.system.entity.SysUser;

import java.util.List;

public interface SysUserService extends IService<SysUser> {
    SysUserResDTO login(SysUserLoginDto reqDto);

    String getUserName();


    void save(SysUserSaveReqDTO reqDTO);

    IPage<SysUserResDTO> paging(PagingReqDTO<SysUserQueryReqDTO> reqDTO);

    List<SysUserResBaseDTO> listAllUser();

    SysUserResDTO detail(BaseIdReqDTO reqDTO);

    List<SysUserBaseResDTO> getList();

    void delete(List<String> ids);

    SysUserResDTO getInfo(String token);

    List<SysUserBaseResDTO> getListUserByRole();

    SysUserResDTO getCurrentUser();

}
